"""
@File    : sys_comm.py
@Author  : timo.tan
@Time    : 2025/07/29 11:42 
"""

import platform
import os
import sys
import subprocess

def print_task_manager_guide():
    """
    打印指导信息，告诉用户如何使用VM-Adjust或VNC Viewer工具连接服务器
    """
    print("=" * 70)
    print("    远程服务器task_manager检查指南")
    print("=" * 70)
    print("\n通过自动检测，我们发现Python脚本无法直接连接到这些服务器。")
    print("这可能是因为防火墙设置、网络配置或特殊的协议要求。")
    print("\n推荐使用专用的VNC Viewer或VM-Adjust工具进行连接，步骤如下:")
    
    print("\n[方法一] 使用VM-Adjust工具")
    print("  1. 打开VM-Adjust工具")
    print("  2. 直接输入服务器IP地址: 10.97.29.101 或 10.97.30.144")
    print("  3. 点击连接，使用密码: viu@509")
    
    print("\n[方法二] 使用VNC Viewer工具")
    print("  1. 打开VNC Viewer")
    print("  2. 输入服务器地址: 10.150.13.135:5900")
    print("  3. 点击连接，然后输入密码: viu@509")
    
    print("\n连接成功后，您可以:")
    print("  1. 打开命令行窗口(cmd)")
    print("  2. 运行以下命令查看task_manager进程:")
    print("     tasklist | findstr task_manager")
    print("  3. 或查看更广泛的任务管理器相关进程:")
    print("     tasklist | findstr -i \"task manager\"")
    
    print("\n如需进一步帮助，可以参考VM-Adjust或VNC Viewer的文档。")
    print("=" * 70)

def check_direct_connection():
    """
    检查是否可以直接使用Python连接到远程服务器
    """
    servers = ["10.150.13.135", "10.97.30.144", "10.97.29.101", "10.97.29.87"]
    
    print("尝试检测服务器连通性...")
    reachable_servers = []
    
    for server in servers:
        print(f"检查服务器 {server}...", end=" ")
        
        # 尝试ping
        ping_param = "-n" if platform.system().lower() == "windows" else "-c"
        try:
            result = subprocess.call(
                ["ping", ping_param, "1", server],
                stdout=subprocess.DEVNULL,
                stderr=subprocess.DEVNULL
            )
            if result == 0:
                print("可ping通!")
                reachable_servers.append(server)
            else:
                print("无法ping通.")
        except:
            print("检查失败.")
    
    if not reachable_servers:
        print("\n无法使用Python脚本直接访问这些服务器。")
        print("这可能是由于网络限制，防火墙设置或特殊的连接要求。")
        return False
    else:
        print(f"\n以下服务器可ping通: {', '.join(reachable_servers)}")
        print("但仍然建议使用专用工具进行连接，因为task_manager服务可能需要特殊的协议或认证。")
        return True

# 主程序
if __name__ == "__main__":
    print("==== 系统信息 ====")
    print(f"操作系统: {platform.system()} {platform.release()}")
    print(f"主机名: {platform.node()}")
    print(f"Python版本: {platform.python_version()}")
    print("")
    
    # 尝试检查直接连接
    check_direct_connection()
    
    # 打印使用工具的指南
    print()
    print_task_manager_guide()




